A service provider is an entity (e.g., a business or an organization) that sells bandwidth provided by or access to a network (e.g., the Internet, a data network, a telecommunication network, etc.) associated with the service provider. Service providers may include telecommunications companies, data carriers, wireless communications providers, Internet service providers, cable television operators offering high-speed Internet access, etc. The rapid growth in the use of content, such as, for example, video, audio, images, software downloads, is creating much higher bandwidth demands on service providers, with sharp peaks around viral content and events.
In order to address such higher bandwidth demands, service providers deploy transparent hypertext transfer protocol (HTTP) proxy cache devices, such as, cache servers, in their networks. The proxy cache devices (also referred to herein as “proxy caches”) can cache popular content, which enables the service providers to optimize network utilization and to save on the backhaul bandwidth costs. Proxy caches are typically implemented at Layer 7, which is the application layer of the Open Systems Interconnection (OSI) model. The proxy caches may be associated with network devices (e.g., routers) that interconnect client devices requesting content and origin devices storing the requested content. A proxy cache is “transparent” to a client device and an origin device because the proxy cache uses the origin device's address (e.g., Internet protocol (IP) address) to send information (e.g., packets) to the client device and uses the client device's IP address to send information to the origin device. Such an arrangement ensures that the proxy cache is not visible to either the client device or the origin device.
A network device interconnecting a client device exchanging traffic with an origin device may utilize a filter or policy-based routing (PBR) to send a subset of the traffic, such as a request for content, from the network device to the proxy cache. In such an arrangement, the proxy cache will terminate a connection (e.g., a transmission control protocol (TCP) connection) with the client device. If the request is for content that is stored in the proxy cache, then the proxy cache provides the content to the client device using an IP address of the origin device. If the requested content is not stored in the proxy cache, then the proxy cache connects to the origin device using an IP address of the client device and requests the content from the origin device. The proxy cache provides the content returned by the origin device to the client device, using the IP address of the origin device, and may cache the content for future use.
However, proxy caches deployed in such a manner experience problems associated with asymmetric routing and packet processing overhead. Asymmetric routing occurs in many service providers networks when a packet traverses from a client device to an origin device in one path, and a response packet traverses from the origin device to the client device in a different path. In certain instances, the response packet may bypass the proxy cache and go straight to the client device. The response packet will get dropped by the client device since the response packet does not match any connection state and will result in a timeout at the proxy cache.
In proxy cache deployments, cache hit ratios (e.g., a probability that the proxy cache stores content requested by a client device) are typically low (e.g., less than 20%) because client devices access a wide variety of content and sizeable portion of such content is non-cacheable (e.g., dynamic data). Despite the low cache hit ratios, all client device requests flow through the proxy cache and unnecessarily increase packet processing overhead in the proxy cache.